In data storage systems such as disc drives, information is stored upon a surface of a medium such as a storage disc in a set of concentric circular patterns called tracks. Typically, storage discs of a disc drive are stacked and mounted for rotation together on a single spindle. Each side of each disc in the disc stack has a surface which is usually used to store information. Each surface of a disc in the disc stack is usually exposed to at least one head responsible for reading and writing information on that particular surface. Typically, all the heads which are mounted on an actuator arm move in tandem radially over the surfaces of the disc so that they are all at the same approximate disc radius at the same time.
In order to read and write data from the correct location in the disc stack, the data storage areas in the disc stack are identified by a cylinder address, head address and sector address. A cylinder identifies a set of specific tracks on the disc surfaces in the disc stack which lie at equal radii and are, in general, simultaneously accessible by the collection of heads. The head address identifies which head can read the data and therefore identifies the disc that the data is recorded on. Each track within a cylinder is further divided into sectors for storing data and servo information.
Most cylinders are available for read/write access by the host computer. However, drive unique information, for example, the drive defect table (table that contains remap information to circumvent defective sectors formed at the time the disc was manufactured) is stored in reserved cylinders which are not normally accessible by the host computer. Typically, multiple copies of drive unique information are stored in reserved cylinders. Additionally, multiple copies of user data are sometimes stored on user accessible cylinders for fast access and data backup purposes.
Each of the multiple copies is stored on a different set of sectors. Defects can arise in any of these sectors at various times during the lifetime of the storage system (grown defects). Grown defects include, for example, invading foreign particles which become embedded onto the surface of the disc, or external shocks to the storage system which can cause the transducer to nick the surface of the disc. Defective sectors present within a group of sectors storing any of the multiple copies of information pose either temporary or permanent problems in retrieving an entire copy.
In typical prior art systems, when retrieval of a first copy fails due to a defective sector being encountered, a second attempt is made to retrieve a second copy. If the second attempt fails, a third attempt is made to retrieve a third copy and so on. This process is repeated until, either a complete copy is retrieved or until a recovery attempt on the last available copy has failed. In this retrieval method, any portion of information contained on a defective sector in each copy is sufficient to prevent the retrieval of a complete copy of information. Therefore, at least one copy of information should be contained on a set of completely error-free sectors for the prior art retrieval method to work. Consequently, data can be lost, or in some cases, where critical information like the defect table cannot be retrieved, the drive could prevent the user from accessing any data stored on the discs.
In general, all data backup systems include redundant copies of information. One such system is the redundant array of inexpensive discs (RAID) system. In typical RAID systems, multiple copies of information are stored in data arrays with each copy stored on different drive. In some models of RAID systems, when a failure occurs in an array, subsequent read and write operations are directed to a surviving drive. A replacement drive is then rebuilt using data from the surviving drive. Thus, a surviving drive containing error-free data is needed for this technique.
Other models of RAID systems use parity information for data recovery. This technique involves regenerating missing data by determining the appropriate value of each missing bit. Typically, parity information is distributed among all drives in the array, instead of a dedicated parity drive to prevent loss of all parity information. However, loss of any drive still reduces the availability of both data and parity information until the failed drive is regenerated from a surviving drive.
The present invention addresses these problems, and offers other advantages over the prior art.